/////////////////////////////////////////////////////////////////////////////////////////////
///<Filename>  		IEvent.h			<\Filename>
///<Date>      		09/26/2011			<\Date>      
///<Author>   		Richard A. Small	<\Author>   
///<Purpose>   	
///		Defines a interface class for all event types
///<\Purpose>
/////////////////////////////////////////////////////////////////////////////////////////////
#pragma once

#include "../Factory/IFactoryAble.h"
#include "../Utility/HashString.h"

class IEvent : public IFactoryAble
{
public:
	IEvent(void) { }
	virtual ~IEvent(void) = 0 { }

	virtual const HashString& GetEventID() = 0;
};

class TestEvent : public IEvent
{
public:

	static const HashString EVENTID;

public:

	TestEvent(void) { }
	virtual ~TestEvent(void) { }

	virtual const HashString& GetEventID() { return EVENTID; }


};
